#define _CRT_SECURE_NO_WARNINGS 1
#define _CRT_SECURE_NO_WARNINGS 1
#include<string>

namespace kl
{
	class string
	{
	public:
		string(const char* str = "");
		~string();
		void reserve(size_t n);
		void push_back(char ch);
		void push_back(const char* str);
		const char* c_str()const
		{
			return _str;
		}
		void insert(size_t pos, char ch);
		void insert(size_t pos, const char* str);
		void erase(size_t pos, size_t len);
		char& operator[](size_t pos)
		{
			return _str[pos];
		}
		const char& operator[](size_t pos) const
		{
			return _str[pos];
		}
	private:
		char* _str;
		size_t _size;
		size_t _capacity;
	};
}